# 集合set（）
# 可变数据结构 没有顺序 不能索引，切片 不允许元素重复
# 创建一个集合 s1=set()
# 可以转化list，tuple 用于列表去重
# set集合中 可以存放不可变的数据结构，但是对于可变的数据结构list、set()
# s1 = {1, 2, 3, 4, "str", 1, range(5)}
# 去重
# list = list(set(s1))
# print(list)
# 增加
# s1.add(8)
# print(s1)
# 删除
# s1.remove(2)
# print(s1)
# 复制
# s3 = s1.copy()
# print(s3)
# 删除全部
#s1.clear()
#print(s1)  #set()
# 往字符串里添加数据
# s4 = {999,888}
# s1.update(s4)
# print(s1)
#  随机删
# s1.pop()
# print(s1)


# 字符串""
# 字符串str可以索引，左到右，从0开始，从右到左，从-1开始
# 不可变对象，意思是地址（    ）
# 可用len()查看字符串的长度
# str可转换为字符串对象，int可转换为数字
# 1.使用单引号
# 2.使用双引号
# 3.使用三引号，可以对字符串进行换行和操作
# 如果你使用单引号或者双引号的时候，表示字符串需要换行，在结尾加入转义字符\
# 字符串内部不可被替换
# 索引
new_str = "来测科技十三期班级"
# print(new_str[1])
# 切片
# print(new_str[1:5])
# 步进
# print(new_str[0:4:2])
# 倒叙
# print(new_str[::-1]
# 查看字符串长度
# print(len(new_str))
# 数据类型转换 str-int,必须得是整数型字符串，如果是小数类型，小数会被省略
# a = "5"
# a = int(5)
# print(type(a))
# \n 换行
# \t 制表
# \r 回车
# \\ 不转义
# r  不转义
# """
# path = r"D:\PycharmProjects\ttatus\DataStructure\stage_str"
# print(path)

# text = r"pytho\rpntc"
# print(text)


# ASCLL码值：
# A = 65、B = 66、C = 67
# a = 97、b = 98、c = 99、d = 100...z
# str() 把一个对象转换成字符串
# ord() 返回一个字符的整数表示方法..长度为1的字符串
# chr() 把Unicode编码转换为字符
# list1 = [123, "SDSAJD"]
# print(ord("A"))
# print(chr(97))
# print(type(str(list1)))

# text = "python_code"
# print(text[1:4])
# print(text[-2:-9:-4])
# print(text[-1])

# 方式一： %占位符来表示字符串中的变量
#     1.%s 通过str()字符串来格式化
#     2.%d 有符号十进制整数
#     3.%f 浮点实数
# 方式二： format函数
#     1.使用{}做为占位符号

# a = "python"
# print("我们今天学习了{}".format(a) )

# num = 1234
# print("我今天捡到了{}".format(num) )

# b = 3.14
# print("今天%f"%(b))
# a1 = 3.14
# print("我今天捡到了%s，交给了警察大叔"%(a1))

# 字符串内置 各种方法




# 字典dict{}
# 特性：字典中的数据是一个无序的 可变集合，我们不能通过索引获取对应的元素，我们使用键值对的方式保存数据，通过key获取value
#     1. 创建字典 dict={}
#     2. 每个数据都是由key和value组成，中间:隔开，数据之间用,隔开
#     3. 字典不可以切片，可以进行增删改查
#     4. 字典的key 通常是由字符串类型&数字&元组等不可变类型，不可以用set 集合、list 列表、dict 字典
#     5. 字典的value 可以任意合法的类型
# 用数字、元组当作key,不可以用set 集合、list 列表、dict 字典等当作key

# dict1 = {"name":"小花","age":25}
# dict1["address"] ="东北" 增加
# print(dict1)
# dict1.pop("age")  删除
# print(dict1)
# dict1["name"] = "小红"  更改
# print(dict1)
# dict2 = {"school":"中学"}  字典合并
# dict2.update(dict1)
# print(dict2)
# dict1 = {2:"数学",(1,2):"语文"}  数字，元组，可以当key
# print(dict1)
# value为元组、集合、小数、字典、列表等
# dict1 = {"数学":(1,2),"语文":{1,2.3},"英语":1.1,"化学":{"name":"小花"},"哈哈":[1,2]}
# print(dict1)

# dict = {"姓名":"小胡子","语文":88,"英语":99,"数学":100}
# dict ["总成绩"] = dict["语文"]+dict["英语"]+dict["数学"]
# print(dict)
# print(dict.get("数学")) 通过key，获取value
# dict.update([("地址","东北")])
# print(dict)
# dict.update({"班级":123})
# print(dict)
# dict.update([("家","大连")])
# print(dict)
# dict.update({"哈啊":"hah"})
# print(dict)
# dict["哈哈"]="r4"
# print(dict)
# dict.pop("姓名")
# print(dict)


# 集合,空集合
# s1 = set()
# print(s1)
# 集合通过转换为列表和tuple，来去重，remove删除括号里指定的值增加add,删除clear(全部的值），pop(随机删），copy（浅复制），update(两个集合相当于合并）

s2 = {4,5,6}
s1 = {1,2,3,}
# s1.add(5)
# print(s1)
# print(type(s1))
# s1.pop()
# print(s1)
# s3 = s1.copy()
# print(s3)
# s1.update(s2)
# print(s1)
# s3 =  {(1,2,3),"语文"}
# print(s3)






# s2 = {5,6,7}
# s1.add(6)
# print(s1)

# print(len(s1))

# s1.pop()
# print(s1)

# s1.clear()
# print(s1)


# print(s1,type(s1))
# print(type(s1))


# s1.remove(2)
# print(s1)
#
# s1.update(s2)
# print(s1)

# s3 = s2.copy()
# print(s3)

# list1 = [1,2,3,4,5,1]
# list2 = list(set(list1))
# print(list2)
# print(len(list1))

# tuple1 = (1,2,3,4,1)
# tuple2 = tuple(set(tuple1))
# print(tuple2)





# list1 = [1,2,3]
# list2 = list1.copy()
# print(list2)

# dict1 = {"name:haha"}
# dict2 = dict1.copy()
# print(dict2)

# tuple1 = (1,2,3)
# tuple2 = tuple1.copy()
# print(tuple2)


# 字典
# dict ={}
# 字典可以增加通过key 值添加，删除，pop通过key值，两个字典合并,update，不可以切片，索引，改，直接通过key改
# 、可根据关键字：键快速索引到对应的值
# 2、有key（键）和value（值），比如： new_dict = {"姓名":"白嘉诚"}
# 3、字典元素是无序的，不可以索引、切片
# 4、字典内部不允许值重复,如果字典里面有相同的key，后面的value会把前面的值替换掉
# 5、如果之前的key存在，则更新，不存在，添加一对key和value
# 4. 字典的key 通常是由字符串类型&数字&元组等不可变类型，不可以用set 集合、list 列表、dict 字典
# 5. 字典的value 可以任意合法的类型
# dict1.keys()   获取所有的key值
# dict1.items()   获取所有的key和value
# dict1.values()   获取所有的value值
# dict1.pop()   传入key，删除key和value的键值对
# dict1.update()   传入字典进行更新键值对
# len 获取长度
# get 通过key 返回对应的值
#
# dict1 = {"name":"xioahua","age":"33"}
# dict2= {"姓名":"红红","地址":"东北"}
# dict2.update({"学校":"大连"})
# print(dict2)
# dict2["学校"] = "大连"
# print(dict2)
# print(type(dict2))
# print(dict2,type(dict2)
# dict1.pop("name")
# print(dict1)
# dict2["地址"] = "大连"
# print(dict2)
# dict1.update(dict2 )
# print(dict1)
# print(len(dict2))
#
# dict1 = {"姓名": "张三", "数学": 148, "语文": 127, "英语": 50}
# dict1["总成绩"]=dict1["数学"]+dict1["语文"]+dict1["英语"]
# print(dict1)
# print(dict1.get("英语"))
# dict2 = dict1.copy()
# print(dict2)

# print(dict1.keys())
# print(dict1.values() )
# print(dict1.items())
# print(dict1.popitem())
# print(dict1)

# for i in dict1.values():
#     print(i)


# age = 18
# name = "小张"
# address = "东北"
# print("我叫{}".format(name))
# print ("年龄{},地址{}".format(age,address) )
#

# dict1 = {"姓名": "张三", "数学": 148, "语文": 127, "英语": 50}
# dict2= {"姓名":"红红","地址":"东北"}
# print(type(dict1))
# dict3 = dict1.copy()
# print(dict3)
# dict1["化学"] = 88
# print(dict1)
# dict1.update({'物理':88})
# print(dict1)
# dict1.pop("语文")
# print(dict1)
# dict1.values()
# print(dict1)
# dict1.keys()
# print(dict1)
# dict1.items()
# print(dict1)
# print(len(dict1))
#
# dict1.popitem()
# print(dict1)
# print(dict1.get("姓名") )

import os
# print(os.name)
#
# print(os.environ)
# print(os.environ["JAVA_HOME"])
# os.getenv("PATH")
# print(os.getenv("PATH") )
# os.system("pwd")
# print(os.system("pwd"))
# # os.system("md aa.txt")
# # os.system("type nul zuoye.txt")
# os.system("rd.aa.txt")


# print(os.path.abspath("ha-ha-ha"))
# print(os.path.basename("text.2.24.py"))
# print(os.path.dirname("./work2.23.py"))
# print(os.path.dirname("../ltest"))

# bb = os.path.abspath("./cc.txt")
# print(bb)
#
#
# with open(bb,"w",encoding= "utf-8") as f:
#     f.write("哈哈")
#     f = open(bb,"w",encoding="utf-8") as f:
# num = f .


# 列表 dict= []
# 可变数据，可以所听，切片，是有序的，可以添加任何数据，嵌套列表？？？列表推导、
#增，删（根据索引删），改（根据索引改），查，长度，合并，复制(深，浅），查看数据类型，索引，切片，
# list1 = [1.2,{"name":"xioahua"},(1,2),"语文",{1,2,2}]
# list2 = [3,5,4,6,4,7]
# print(type(list1))
# # list2.update(8)
# # print(list2)
# list1.pop(1)
# print(list1)
# print(len(list1))
# list3 = list2.copy()
# print(list3)
# list4 = list1 + list2
# print(list4)
# print(list1[:3])
# print(list1[2:3])
# list1.append("huahua")
# print(list1)
# list1[0]= "huwhua"
# print(list1)
# list5 = list2*4
# print(list5)
# list2.reverse()
# print(list2)
# list2.sort(reverse =False )
# print(list2)
# list2.sort(reverse = True )
# print(list2)
# # list2.count(4)
# # print(list2)
# list2.remove(4)
# print(list2)
# list2.count(3)
# print(list2.count(3))














